#pragma once
#include"HashTable.h"

template<class K>
struct KeyOfT
{
	K operator()(const K& key)
	{
		return key;
	}
};

template<class K>
class unordered_set
{
public:
	typedef hash_bucket::Iterator iterator;

	iterator begin()
	{
		return _st.Begin();
	}
	iterator end()
	{
		return _st.End();
	}

	bool insert(const K& key)
	{
		_st.Insert(key);
	}
	bool erase(const K& key)
	{
		_st.Erase(key);
	}
	
private:
	hash_bucket::HashTable<K,K, KeyOfT<K>> _st;
};